#define _CRT_SECURE_NO_WARNINGS
//bool IsContinuous(vector<int>& numbers) {
//    // write code here
//    sort(numbers.begin(), numbers.end());
//    int pre = 0;
//    int num = 0;
//    for (auto i : numbers)
//    {
//        if (i == 0)
//        {
//            num++;
//        }
//        if (pre != 0)
//        {
//            if (i - pre - 1 > num)
//            {
//                cout << false;
//                break;
//            }
//            else {
//                num -= (i - pre - 1);
//            }
//        }
//        pre = i;
//    }
//    cout << true;
//    return 0;
//}
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
bool IsContinuous(vector<int>& numbers) {
    // write code here
    sort(numbers.begin(), numbers.end());
    int pre = 0;
    int num = 0;
    for (auto i : numbers)
    {
        if (i == 0)
        {
            num++;
        }
        if (pre != 0)
        {
            if (i - pre - 1 > num)
            {
                return false;
            }
            else {
                num -= (i - pre - 1);
            }
        }
        pre = i;
    }

    return true;
}

int main()
{
    vector<int> vv = { 1,0,0,1,0 };
    IsContinuous(vv);


    return 0;
}